Skip to content

Add tinySA spectrum backend - #3

Draft
AlCalzone wants to merge 16 commits into
alcalzone-power-trace-foundationfrom
alcalzone-tinysa-spectrum-backend
Draft

Add tinySA spectrum backend#3
AlCalzone wants to merge 16 commits into
alcalzone-power-trace-foundationfrom
alcalzone-tinysa-spectrum-backend

Conversation

@AlCalzone

@AlCalzone AlCalzone commented Sep 7, 2026

Copy link
Copy Markdown
Owner

Upstream review: musithang#8. Depends on #2. This stack adds tinySA support through calibrated power traces.

The foundation had no concrete analyzer discovery or serial protocol implementation. It could not communicate with a tinySA.

This PR adds model-aware discovery and a sole-owner serial worker. The worker publishes validated dBm traces for spectrum and waterfall views on existing firmware. #5 extends the backend to native wide sweeps.

@AlCalzone
AlCalzone force-pushed the alcalzone-tinysa-spectrum-backend branch 2 times, most recently from 62076be to 61e5d91 Compare September 7, 2026 18:49
@AlCalzone
AlCalzone force-pushed the alcalzone-tinysa-spectrum-backend branch from 61e5d91 to 77ce5cf Compare September 7, 2026 21:00
AlCalzone and others added 8 commits September 8, 2026 11:15
Use N intervals across an N-bin IQ FFT span. Share bin windows and frequency conversion across spectrum rendering, waterfall columns, and peak-jump tuning.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Use containing FFT intervals for cursor and marker lookup. Extend the final rendered interval and derive waterfall columns from each drawn row. Use captured-frame coordinates for lab peaks and recall.

Address the approved geometry review of musithang#12.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep existing IQ profiles at -120 to 0 dBFS with a 500 ms trace-age limit.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Address musithang#13 review with shared range-safe zoom, explicit display validation, capability-based initialization, and budget-aware FFT pacing.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Extract backend-neutral control and math helpers for the tinySA prerequisites. Preserve finite IQ averaging, peak decay, noise-floor calculation, and RX session behavior.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Address musithang#14 review with documented availability and parameter contracts, buffer preconditions, and boundary regressions.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Adapt display tests to the geometry window API while keeping each preparation layer independently testable.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Add backend-neutral calibrated trace acquisition, measured-point publication, power RX control, and capability-aware layout fallback. Preserve IQ behavior through the shared prerequisite contracts.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
AlCalzone and others added 8 commits September 8, 2026 11:20
Add hardware-tested tinySA discovery and calibrated spectrum acquisition on the generic power-trace path.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Publish a uniform grid for float-rounded firmware points and preserve the effective center after edge-clamped scans.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Accept the firmware's bounded float grid variation using measured endpoints. Clamp duplicate-producing spans and retain edge-shifted centers for later tuning changes.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Wait for the counted scan frame to close after the firmware acknowledges abort. Stop the worker if the serial stream cannot be synchronized.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Enable the Ultra input with its automatic threshold and submit each range as one scan. This keeps path selection and calibration in the verified firmware.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep Basic devices on one explicit LOW or HIGH connector and expose the choice through device selection. Normalize firmware frequency positions onto an endpoint-preserving display grid owned by the backend.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Treat the selector input as an explicit override so a bare serial path does not replace a persisted HIGH choice. Report invalid selectors and align the Basic model limit with the supported firmware.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@AlCalzone
AlCalzone force-pushed the alcalzone-tinysa-spectrum-backend branch from 77ce5cf to 31ad3b2 Compare September 8, 2026 09:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant